package com.fishing.util.personal;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import net.sf.json.filters.CompositePropertyFilter;

public class SaveAs {
    public static void compressFile(String strOldpath,String strNewPath) {
    	File file = new File(strOldpath);
    	/*判断目录还是文件*/
    	if(file.isDirectory()) {
    	    System.out.println("压缩文件夹: " + strOldpath + file.getName());
    	    copyFolder(strOldpath, strNewPath);//对文件夹进行递归另存为
    	} else {  
    		System.out.println("压缩文件：" + strOldpath + file.getName());  
    		copyFile(strOldpath, strNewPath); //对单个文件进行另存为
    	}  
    }
    
    public static void copyFile(String strOldpath,String strNewPath) {
    	try {
			File fOldFile = new File(strOldpath);
			if(fOldFile.exists()) {
				int bytesum = 0; 
				int byteread = 0;
				InputStream inputStream = new FileInputStream(strNewPath);
				FileOutputStream fileOutputStream = new FileOutputStream(strNewPath);
				byte[] buffer = new byte[1024];
				while((byteread = inputStream.read(buffer)) != -1){
					bytesum += byteread;//这一行是记录文件大小的,可以删去
					fileOutputStream.write(buffer,0,byteread);//三个参数,第一个参数是写的内容,
					//第二个参数是从什么地方开始写,第三个参数是需要写的大小
				}
				inputStream.close();
				fileOutputStream.close();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			System.out.println("复制单个文件出错");
			e.printStackTrace();
		}
    }
    
    
    
    public static void copyFolder(String strPatientImageOldPath,String strPatientImageNewPath) {
    	File fOldFolder = new File(strPatientImageOldPath);//旧文件夹
    	try {
			File fNewFolder = new File(strPatientImageNewPath);//新文件夹
			if(!fNewFolder.exists()) {
				fNewFolder.mkdirs();//不存在就创建一个文件夹
			}
			File[] arrFiles = fOldFolder.listFiles();//获取旧文件夹里面所有文件
			for(int i = 0;i < arrFiles.length;i++) {
				//从原来的路径拷贝到现在的路径,拷贝一个文件
				if(!arrFiles[i].isDirectory()) {
					copyFile(strPatientImageOldPath+"/"+arrFiles[i].getName(), strPatientImageNewPath+"/"+arrFiles[i].getName());
				}
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
    }
}
